﻿using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using PmSadis.Models.Abstract;
using System;

namespace PmSadis.Models
{
    /// <summary>
    /// Сообщение, приходящее в службу поддержки
    /// </summary>
    [Table("D_SUPPORT")]
    public class Support : IRedactModel
    {
        /// <summary>
        /// Идентификатор сообщения
        /// </summary>
        [Column("SUPPORT_ID")]
        public int SupportId { get; set; }

        /// <summary>
        /// Заголовок сообщения
        /// </summary>
        [Column("TITLE")]
        [Required]
        public string Title { get; set; }

        /// <summary>
        /// Содержание сообщения
        /// </summary>
        [Column("CONTENT")]
        [Required]
        public string Content { get; set; }

        /// <summary>
        /// Адрес отправителя
        /// </summary>
        [Column("EMAIL")]
        [Required]
        public string Email { get; set; }

        /// <summary>
        /// Телефон отправителя
        /// </summary>
        [Column("PHONE")]
        public string Phone { get; set; }

        /// <summary>
        /// Дата создания
        /// </summary>
        [Column("DATE_CREATE")]
        public DateTime DateCreate { get; set; }

        /// <summary>
        /// Дата последнего редактирования
        /// </summary>
        [Column("DATE_UPDATE")]
        public DateTime DateUpdate { get; set; }

        /// <summary>
        /// Сообщение на контроле
        /// </summary>
        [Column("IS_ON_CONTROL")]
        public bool IsOnControl { get; set; }

        /// <summary>
        /// Завершено рассмотрение сообщения
        /// </summary>
        [Column("IS_COMPLETE")]
        public bool IsComplete { get; set; }
    }

    /// <summary>
    /// Вспомогательный класс сообщения для просмотра статусов в администраторе
    /// </summary>
    [NotMapped]
    public class SupportFoAdmin : Support
    {
        /// <summary>
        /// Статус рассмотрения сообщения
        /// </summary>
        public int Status { get; set; }
    }
}
